IF exists(SELECT * FROM dbo.sysobjects WHERE name='vulAfwezigheidsregister' AND xtype='P') 
BEGIN
	DROP PROCEDURE vulAfwezigheidsregister
END
GO

CREATE     procedure vulAfwezigheidsregister
as
set nocount on

--de hulptabel wordt lineair opgeslagen in een voorlopige tabel #afwezig

create table #afwezig (
  iNr char(7) null,
  datum datetime null,
  dagDeel char(1) null,
  reden char(1) null
 )
declare @teller int
declare @getal char(2)
declare @sqlZin varchar(2000)

set @teller= 1
while @teller < 32
begin
  set @getal = convert(char(2),@teller)

  set @sqlZin = 'insert into #afwezig(iNr,datum,dagdeel,reden)' +
	'select inschrijvingsNr,dateadd(day,' + @getal + '- 1,' +
	'startdatum),''V'',v' + @getal + ' from hulpafwezigen'
  exec(@sqlZin)
  
  set @sqlZin = 'insert into #afwezig(iNr,datum,dagdeel,reden)' +
	'select inschrijvingsNr,dateadd(day,' + @getal + '- 1,' +
	'startdatum),''N'',n' + @getal + ' from hulpafwezigen'
  exec(@sqlZin)
  set @teller = @teller + 1
end

--De oude gegevens uit de 'afwezigheden' worden gewist.

delete afwezigheden from #afwezig 
 	where afwezigheden.inschrijvingsNr = #afwezig.iNr
	and afwezigheden.datum = #afwezig.datum 

--De relevante gegevens uit de tussentabel worden overgebracht naar de 
--tabel 'afwezigheden'.

insert into afwezigheden(inschrijvingsNr,datum,dagdeel, reden)
select iNr,datum,dagdeel,reden from #afwezig
	where reden = 'O' 
	  or reden = 'Z' 
	    or reden = 'L' 
	      or reden = 'R'
		or reden = 'S'
		  or reden = 'P'
		   or reden = 'B'
                    or reden='D'
                     or reden='T'
                      or reden='I'
                       or reden='G'